<MountHeirarchy>
This is partially created as the audivolv.Mount Java interface.

TODO mount the window and recursive audivolv.Ui objects
<br><br>
TODO rewrite this whole class. It was copied from OldDataHome which uses URIs for all location names,
but this class should instead use Unix-style heirarchy.
<br><br>
TODO How to know which protocol to use for each mounted location? "file", "http", "ftp", "jarfile"???
<br><br>
TODO? Should this class be replaced (or extend?) a new simpler class thats
like a binary tree but allowing "protocols" to exist in any binarytreenode?
Example: A path to a zip file written as a UTF-8 string is a sequence of bits,
and at the last bit should be the "file" and "zipfile" and "modifyTime" protocols,
and each of those protocols leads to an other sequence of bits.
The "zipfile" protocol leads to a binarytree of the bits of all filenames in the zip
which includes the bytes of the zipfile itself. If you modify the contents of those files,
then the bytes of the zip will be different the next time you read it.
What is the advantage of this over a unix style string heirarchy separated by "/"?
Its backward compatible with that, but what is the advantage?
Should it instead be a general tree of Java Objects and primitives, where true and false are those bits?
THE FOLLOWING THINGS CAN BE REPRESENTED AS A SEQUENCE OF BITS:
	file contents
	time
	filename
	any UTF-8 string
THE FOLLOWING THINGS CAN **NOT** BE REPRESENTED AS A SEQUENCE OF BITS:
	Line for speakers or microphone
	java.awt.Component
	most Java objects
</MountHeirarchy>